Pour créer un index, on passe par l'API rest. Il est possible de créer le mapping en même temps que l'index, par exemple :
$ curl -X POST localhost:9200/myindex -d '{
settings :{
number_of_shards: 2,
number_of_replicas: 1
},
mappings: {
"orders" : {
"properties" : {
"id": {
"type": "string",
"store": "yes"
},
"nom": {
"string",
// etc
}
}
}
}
}'
On peut également fermer un index plutôt que de le supprimer, une sorte de offline/online mode. Fermer un index, désactive memory, threads etc. On ne peut également plus faire de recherche dessus
Via l'API. Lorsqu'on setup un mapping si un mapping existe déjà on le merge avec le nouveau, on update les fields type etc.
$ curl -XPUT 'http://localhost:9200/twitter/_mapping/tweet' -d '
{
"tweet" : {
"properties" : {
"message" : {"type" : "string", "store" : true }
}
}
}
'
Les données sont stockés sur le disque et pendant la durée de vie d'un index, beaucoup de segments du disque sont crées et changés. Avec l'augmentation du nombre de segment la vitesse de recherche se réduit au fur et a mesure que le nb de segment augmente. Optimiser les index réduit les segments et consolide les index.